#ifndef IODEVICEPUBDEF_H
#define IODEVICEPUBDEF_H

enum IODeviceResult {
	IO_DEVICE_OK = 0,
	IO_DEVICE_ERROR = -1,
};

enum IODeviceOperation {
	IO_OPERATION_INVALID,
	IO_OPERATION_TOBII_GET_GAZE_POINT,
	IO_OPERATION_THINKGEAR_GET_ATTENTION_VALUE,
	IO_OPERATION_ARDUINO_CONTROLLER_GET_VALUE,
	IO_OPERATION_ARDUINO_CONTROLLER_GET_BUTTON_VALUE,
	IO_OPERATION_ARDUINO_CONTROLLER_GET_ROCKER_VALUE,
	IO_OPERATION_MAX,
};

enum IODeviceType {
	IO_DEVICE_INVALID,
	IO_DEVICE_TOBII,
	IO_DEVICE_THINKGEAR,
	IO_DEVICE_ARDUINO_CONTROLLER,
	IO_DEVICE_MAX,
};

struct TobbiGazePoint {
	int x;
	int y;
};

enum ThinkGearBaudRate {
	THINKGEAR_BAUD_9600
}; 

struct ArduinoControllerData {
	unsigned int buttonValue;
	int buttonCount;
	int x1;
	int y1;
	int x2;
	int y2;
};

#endif
